home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
United Public Domain Gold 2
/
United Public Domain Gold 2.iso
/
utilities
/
pu005.dms
/
pu005.adf
/
Propagation
/
minimuf 3.5
(
.txt
)
< prev
next >
Wrap
AmigaBASIC Source Code
|
1988-01-19
|
19KB
|
719 lines
REM WA1FSV VERSION DATED 10 APRIL 1986
REM CALCULATIONS TAKE APPROX 12.5 SECONDS
REM FOR EACH TRANSMITTER
LOCATE 8,29: PRINT "WELCOME TO MINIMUF 3.5"
LOCATE 12,23: PRINT "WOULD YOU LIKE TO SEE INSTRUCTIONS"
LOCATE 16,28: INPUT "PLEASE TYPE ( Y OR N ) ",CHOICE$
IF CHOICE$="YES" OR CHOICE$="yes" OR CHOICE$="Y" OR CHOICE$="y" THEN GOTO INSTRUCTIONS
Driver:
CLS
CLEAR
PI=4*ATN(1)
DEF FNACS(X)= -ATN(X/SQR(-X*X+1))+(PI/2)
R0=PI/180: P1=2*PI: R1=180/PI: P0=PI/2
S$=" ":REM SPACE
C$=",":REM COMMA
DIM SF(22),SN(22),A$(4),M(12),LT(41),LN(41),NT$(41)
DIM LO$(41),CI$(41),M$(12),NO(11)
REM DATA BELOW IS FROM GRAPH OF SOLAR FLUX vs SUNSPOT
REM NUMBER IN QST DECEMBER, 1982, P. 37
DATA 64,72,79,87,95,103,111,120,128,137,146,155,165,174,184,194,204,214,224,234,244,444
DATA 0,10,20,30,40,50,60,70,80,90,100,110,120,130,140,150,160,170,180,190,200,400
FOR I=1 TO 22
READ SF(I): NEXT I
FOR I=1 TO 22
READ SN(I): NEXT I
DATA JAN,FEB,MAR,APR,MAY,JUN,JUL,AUG,SEP,OCT,NOV,DEC
DATA 31,28,31,30,31,30,31,31,30,31,30,31
FOR I=1 TO 12
READ M$(I): NEXT I
FOR I=1 TO 12
READ M(I): NEXT I
REM THESE ARE THE "TRANSMITTER" DATA STATEMENTS
DATA ADDIS ABABA,ETHIOPIA,EASTERN AFRICA,9.0,-38.5
DATA ANCHORAGE,ALASKA,N.AMERICA,61.5,150.0
DATA ANKARA,TURKEY,ASIA,39.9,-32.9
DATA ATHENS,GREECE,MEDITERRANEAN,38.0,-23.7
DATA BOMBAY,INDIA,ASIA,19.0,-72.0
DATA CAPETOWN,SOUTH AFRICA,SOUTHERN AFRICA,-33.9,-18.5
DATA CARACAS,VENEZUELA,NORTHERN S.AMERICA,10.5,67.0
DATA COOK ISLAND,-,OCEANA,-20.0,160.0
DATA DAKAR,SENEGAL,WESTERN AFRICA,14.0,17.5
DATA DUBLIN,IRELAND,WESTERN EUROPE,53.3,6.3
DATA GUAM,-,OCEANA,12.0,-145.0
DATA HALIFAX,NOVA SCOTIA,N.AMERICA,44.7,63.6
DATA HELSINKI,FINLAND,NORTHERN EUROPE,60.2,-25.0
DATA HONG KONG,-,ASIA,22.0,-114.0
DATA HONOLULU,HAWAII,OCEANA,21.3,157.9
DATA JERUSALEM,ISRAEL,WESTEREN ASIA,32.0,-35.0
DATA LIBREVILLE,GABON,CENTRAL AFRICA,0.5,9.0
DATA MADRID,SPAIN,SOUTHERN EUROPE,40.4,3.7
DATA MANILA,PHILIPPINES,OCEANA,14.5,-121.0
DATA MELBOURNE,AUSTRALIA,OCEANA,-37.8,-145.0
DATA MILANO,ITALY,SOUTHERN EUROPE,45.5,-13.0
DATA MOSCOW,USSR,EASTERN EUROPE,56.0,-37.0
DATA MUNICH,GERMANY,CENTRAL EUROPE,48.1,11.6
DATA NAPLES,ITALY,MEDITERRANEAN,40.0,11.0
DATA NAIROBI,KENYA,EAST AFRICA,-1.5,-37.5
DATA OSLO,NORWAY,NORTHERN EUROPE,60.0,-11.0
DATA PARIS,FRANCE,WESTERN EUROPE,48.8,-2.3
DATA PEKING,CHINA,ASIA,40.0,-116.0
DATA QUITO,ECUADOR,WESTERN S.AMERICA,-0.5,78.0
DATA RIO DE JANERIO,BRAZIL,EASTERN S.AMERICA,-23.0,43.0
DATA SANTIAGO,CHILE,SOUTHERN S.AMERICA,-33.0,71.0
DATA ST.AUGUSTINE,FLORIDA,N.AMERICA,29.9,81.4
DATA SAN JUAN,PUERTO RICO,CARIBBEAN,18.5,66.5
DATA SAN SALVADOR,EL SALVADOR,CENTRAL AMERICA,13.5,89.0
DATA SINGAPORE,-,ASIA,1.0,-104.0
DATA STOCKHOLM,SWEDEN,NORTHERN EUROPE,59.3,-18.1
DATA TOKYO,JAPAN,ASIA,35.7,-139.8
DATA TRIPOLI,LIBYA,NORTHERN AFRICA,32.5,-13.0
DATA VIENNA,AUSTRIA,CENTRAL EUROPE,48.2,-16.3
DATA WARSAW,POLAND,NORTHERN EUROPE,52.2,-21.0
DATA SUNNYVALE,CALIFORNIA,N.AMERICA,37.7,121.5
REM IF THE RECEIVER IS TO BE IN THE EASTERN UNITED STATES IT IS
REM RECOMMENDED THAT THE ST.AUGUSTINE DATA BE REPLACED BY:
REM "SAN FRANCISCO,CALIFORNIA,N.AMERICA,37.5,122.5"
FOR I=1 TO 41
READ CI$(I),NT$(I),LO$(I),LT(I),LN(I): NEXT I
Transgrpselect:
CLS: ALLIT=0
PRINT
PRINT
PRINT
PRINT TAB(23); "TRANSMITTER GROUP SELECTIONS ARE:"
PRINT
PRINT
PRINT
PRINT
PRINT
PRINT TAB(20); "41 CHOICE OF ANY 1 TO 10 TRANSMITTERS"
PRINT TAB(20); "42 NORTHERN EUROPE & EUROPEAN USSR"
PRINT TAB(20); "43 WESTERN, CENTRAL & SOUTHERN EUROPE"
PRINT TAB(20); "44 MEDITERRANEAN AREAS"
PRINT TAB(20); "45 EAST, WEST & SOUTHERN AFRICA"
PRINT TAB(20); "46 ASIA AND THE FAR EAST"
PRINT TAB(20); "47 OCEANA AND THE SOUTH PACIFIC"
PRINT TAB(20); "48 NORTH, SOUTH AND CENTRAL AMERICAS"
PRINT TAB(20); "49 USER SUPPLIED INFORMATION"
PRINT
PRINT
PRINT
PRINT
PRINT TAB(23);: INPUT; "TYPE YOUR CHOICE ( 41 THRU 49 ) ",CHOICE
IF CHOICE <41 OR CHOICE >49 THEN GOTO Transgrpselect
IF CHOICE <>49 THEN ALLIT=1: GOTO 1760
REM USER INPUTS TRANSMITTER DATA NEXT
CLS
1690
PRINT
PRINT TAB(7);:INPUT; "LATITUDE OF TRANSMITTER - SOUTH IS NEGATIVE (-90 TO 90) ",L1
PRINT
IF L1 <-90 OR L1 >90 THEN CLS: PRINT "TRY AGAIN": GOTO 1690
PRINT
1710
PRINT TAB(7);:INPUT; "LONGITUDE OF TANSMITTER - EAST IS NEGATIVE (-360 TO 360) ",W1
PRINT
IF W1 <-360 OR W1 >360 THEN PRINT "TRY AGAIN": GOTO 1710
PRINT
PRINT TAB(7); "TYPE COMMENTS ON THIS TRANSMITTER BELOW"
PRINT
PRINT TAB(7);:INPUT; "",TCOM$
GOTO Inmuf
1760
IF CHOICE=42 THEN NU=5: NO(1)=13: NO(2)=22: NO(3)=26: NO(4)=36: NO(5)=40: GOTO Inmuf
IF CHOICE=43 THEN NU=5: NO(1)=10: NO(2)=21: NO(3)=23: NO(4)=27: NO(5)=39: GOTO Inmuf
IF CHOICE=44 THEN NU=5: NO(1)=4: NO(2)=16: NO(3)=18: NO(4)=24: NO(5)=38: GOTO Inmuf
IF CHOICE=45 THEN NU=5: NO(1)=1: NO(2)=6: NO(3)=9: NO(4)=17: NO(5)=25: GOTO Inmuf
IF CHOICE=46 THEN NU=6: NO(1)=3: NO(2)=5: NO(3)=14: NO(4)=28: NO(5)=35: NO(6)=37: GOTO Inmuf
IF CHOICE=47 THEN NU=5: NO(1)=8: NO(2)=11: NO(3)=15: NO(4)=19: NO(5)=20: GOTO Inmuf
IF CHOICE=48 THEN NU=8: NO(1)=2: NO(2)=7: NO(3)=12: NO(4)=29: NO(5)=30: NO(6)=31: NO(7)=32: NO(8)=33: GOTO Inmuf
1880
FOR IJ=1 TO 11
CLS: FOR I=1 TO 20: IF I <10 THEN PRINT S$;
PRINT I; ". "; CI$(I); C$; NT$(I);: PRINT TAB(40); I+20; ". "; CI$(I+20); C$; NT$(I+20): NEXT I
IF IJ >1 THEN PRINT " TRANSMITTERS SELECTED";: FOR J=1 TO IJ-1: PRINT NO(J); S$;: NEXT J: PRINT S$
PRINT " ENTER NUMBER OF TRANSMITTER"; IJ: INPUT; " (1 TO 40). ENTER 'F' IF FINISHED."; NO$
NO(IJ)=INT(VAL(NO$))
IF IJ=11 THEN NO$="F"
IF NO$="F" OR NO$="f" THEN NU=IJ-1: GOTO Inmuf
NU=IJ
NEXT IJ
Inmuf:
CLS
PRINT
PRINT
PRINT
PRINT TAB(30); "RECEIVER LOCATION"
PRINT
PRINT
PRINT TAB(25); "1. "; CI$(41); ". "; NT$(41)
PRINT
PRINT TAB(25); "2. USER SUPPLIED LOCATION (LAT & LON)"
PRINT
PRINT
PRINT TAB(25);:INPUT; "TYPE YOUR CHOICE (1 OR 2) ", CHOICE$: IF CHOICE$="" THEN CHOICE$="1"
CHOICE =INT(VAL(CHOICE$)): IF CHOICE=1 THEN RCOM$=CI$(41)+C$+S$+NT$(41)+S$+S$+LO$(41)+S$
IF CHOICE=1 THEN L2=LT(41): W2=LN(41): GOTO 2100
REM HERE USER INPUTS RECEIVER DATA
CLS
PRINT
PRINT
PRINT
2040
PRINT TAB(12);:INPUT; "LATITUDE OF RECEIVER - SOUTH IS NEGATIVE (-90 TO 90) ",L2
IF L2 <-90 OR L2 >90 THEN PRINT TAB(27); "TRY AGAIN": GOTO 2040
2060
PRINT
PRINT TAB(12);:INPUT; "LONGITUDE OF RECEIVER - EAST IS NEGATIVE (-360 TO 360) ",W2
IF W2 <-360 OR W2 >360 THEN PRINT TAB(12); "TRY AGAIN": GOTO 2060
PRINT
PRINT
PRINT TAB(21); "TYPE YOUR COMMENTS ON THIS RECEIVER BELOW"
PRINT
PRINT TAB(30);: INPUT;"", RCOM$
2100
PRINT: PRINT
PRINT TAB(25);: INPUT "MONTH (1 TO 12) ",M0: M0=INT(M0)
IF M0 >=1 AND M0 <=12 THEN 2140
PRINT TAB(25); "INVALID MONTH, MUST BE IN RANGE (1,12)": GOTO 2100
2140
PRINT: PRINT TAB(25); "DAY OF MONTH (1 TO";M(M0);: INPUT") ", D6: D6=INT(D6)
IF D6 >=1 AND D6 <=M(M0) THEN 2180
PRINT TAB(25); "INVALID DAY. MUST BE IN RANGE (1,";M(M0);").": GOTO 2100
2180
PRINT: PRINT TAB(25);: INPUT "SOLAR FLUX ( >64 TO <444 ) ",FLUX
IF FLUX <64 OR FLUX >444 THEN PRINT TAB(25); "FLUX OUT RANGE TRY AGAIN": GOTO 2180
REM HERE THE SUNSPOT TABLE IS EVALUATED
FOR I=2 TO 22
IF SF(I) >=FLUX THEN FINAL=I: GOTO 2250
NEXT I
2250
REM LINEAR INTERPOLATION IS NOW USED TO FIND SUNSPOT NUMBER
REM FROM SOLAR FLUX. THIS PROGRAM IS MOST ACCURATE FOR
REM SOLAR FLUX OF 64 TO 244. IN THE RANGE OF 244 TO 444 AN
REM UNCERTAIN EXTRAPOLATION IS USED.
FA=(SF(FINAL)-FLUX)/(SF(FINAL)-SF(FINAL-1))
S9=SN(FINAL)-FA*(SN(FINAL)-SN(FINAL-1))
S9=INT(S9+0.5)
PRINT: PRINT: PRINT TAB(20);: INPUT "DO YOU DESIRE PRINTED OUTPUT (Y OR N) ", PRINTOUT$
IF PRINTOUT$="N" OR PRINTOUT$="n" THEN 2700
LPRINT: LPRINT "DATE: ";M$(M0);" "; D6
IF ALLIT=1 THEN 2430
LZ=(INT(L1*100+0.5))/100
WZ=(INT(W1*100+0.5))/100
LPRINT "TRANSMITTER LOCATION: LATITUDE "; LZ; "LONGITUDE"; WZ
LPRINT TCOM$
2430
LPRINT
LZ=(INT(L2*100+0.5))/100
WZ=(INT(W2*100+0.5))/100
LPRINT "RECEIVER LOCATION: LATITUDE "; LZ; "LONGITUDE "; WZ
LPRINT RCOM$
LPRINT "SOLAR FLUX = "; FLUX
LPRINT "SUNSPOT NUMBER ="; S9
LPRINT
IF ALLIT=1 THEN 2660
LPRINT " HOUR MUF(MHZ)"
LPRINT
L1=L1*R0: W1=W1*R0: L2=L2*R0: W2=W2*R0
FOR T5=0 TO 23
GOSUB Mainmuf
LZ=(INT(T5*10))/10
WZ=(INT((J9+0.05)*10))/10
LPRINT; SPC(6-LEN(STR$(INT(LZ))));LZ; SPC(10-LEN(STR$(INT(WZ)))-LEN(STR$(LZ-INT(LZ)))); WZ
NEXT T5
LPRINT CHR$(12);: REM THIS IS EPSON JX-80 SPEAK FOR TOP-OF-FORM
2610
CLS
LOCATE 10,25: PRINT "WOULD YOU LIKE TO RUN ANOTHER"
LOCATE 12,31: PRINT "MINIMUF 3.5 TRIAL"
LOCATE 16,29: INPUT "PLEASE TYPE ( Y OR N ) ",YE$
IF YE$="Y" OR YE$="" OR YE$="y" OR YE$="YES" OR YE$="yes" THEN GOTO Transgrpselect
END
2660
REM HERE A LARGE NUMBER OF TRANSMITTER OUTPUTS ARE PRINTED
LPRINT: LPRINT: LPRINT TAB(32) "TRANSMITTER DATA": LPRINT: LPRINT
FOR I=1 TO NU
TCOM$=CI$(NO(I))+C$+S$+NT$(NO(I))+S$+S$+LO$(NO(I))+S$
IF I=10 THEN 2680
2670
LPRINT "NO."; S$; I; S$; TCOM$; "LAT= "; LT(NO(I)); " LON= "; LN(NO(I)): GOTO 2690
2680
LPRINT "NO."; I; S$; TCOM$; " LAT= "; LT(NO(I)); " LON= "; LN(NO(I))
2690
NEXT I
LPRINT: LPRINT: LPRINT TAB(15) "MUF (MHZ) FOR EACH TRANSMITTER AT EACH UTC HOUR": LPRINT:LPRINT
LPRINT "HOUR"; SPC(2);
L2=L2*R0: W2=W2*R0
FOR I=1 TO NU
LPRINT "NO.";I;: NEXT I
LPRINT S$:LPRINT
SPA=5: REM SPACING FOR OUTPUT LINE
FOR T5=0 TO 23
LPRINT; SPC(3-LEN(STR$(INT(T5)))); T5;
LH=1
FOR I=1 TO NU
L1=LT(NO(I))*R0: W1=LN(NO(I))*R0
GOSUB Mainmuf
WZ=(INT((J9+0.05)*10))/10
LPRINT; SPC(SPA-LH-LEN(STR$(INT(WZ)))); WZ;
LH=LEN(STR$(WZ))-LEN(STR$(INT(WZ)))
IF LH >2 THEN LH=0
NEXT I
LPRINT S$
NEXT T5
LPRINT CHR$(12);:REM THIS IS EPSON JX-80 SPEAK FOR "TOP-OF-FORM"
GOTO 2610 : REM THIS IS THE END OF PRINTER ROUTINE
REM NEXT PRINTS TO THE SCREEN ONLY
2700
CLS
PRINT: PRINT "DATE: ";M$(M0);" "; D6
IF ALLIT=1 THEN 2710
LZ=(INT(L1*100+0.5))/100
WZ=(INT(W1*100+0.5))/100
PRINT "TRANSMITTER LOCATION: LATITUDE "; LZ; "LONGITUDE"; WZ
PRINT TCOM$
2710
PRINT
LZ=(INT(L2*100+0.5))/100
WZ=(INT(W2*100+0.5))/100
PRINT "RECEIVER LOCATION: LATITUDE "; LZ; "LONGITUDE "; WZ
PRINT RCOM$
PRINT "SOLAR FLUX = "; FLUX
PRINT "SUNSPOT NUMBER ="; S9
PRINT
IF ALLIT=1 THEN 2730
PRINT " HOUR MUF(MHZ)"
PRINT
L1=L1*R0: W1=W1*R0: L2=L2*R0: W2=W2*R0
FOR T5=0 TO 23
GOSUB Mainmuf
LZ=(INT(T5*10))/10
WZ=(INT((J9+0.05)*10))/10
PRINT; SPC(6-LEN(STR$(INT(LZ))));LZ; SPC(10-LEN(STR$(INT(WZ)))-LEN(STR$(LZ-INT(LZ)))); WZ
NEXT T5
2720
CLS
LOCATE 10,25: PRINT "WOULD YOU LIKE TO RUN ANOTHER"
LOCATE 12,31: PRINT "MINIMUF 3.5 TRIAL"
LOCATE 16,29: INPUT; "PLEASE TYPE ( Y OR N ) ",YE$
IF YE$="Y" OR YE$="" OR YE$="y" OR YE$="YES" OR YE$="yes" THEN GOTO Transgrpselect
END
2730
REM HERE A LARGE NUMBER OF TRANSMITTER OUTPUTS ARE PRINTED TO SCREEN
PRINT: PRINT: PRINT TAB(32) "TRANSMITTER DATA": PRINT: PRINT
FOR I=1 TO NU
TCOM$=CI$(NO(I))+C$+S$+NT$(NO(I))+S$+S$+LO$(NO(I))+S$
IF I=10 THEN 2750
2740
PRINT "NO."; S$; I; S$; TCOM$; "LAT= "; LT(NO(I)); " LON= "; LN(NO(I)): GOTO 2760
2750
PRINT "NO."; I; S$; TCOM$; " LAT= "; LT(NO(I)); " LON= "; LN(NO(I))
2760
NEXT I
PRINT: PRINT: PRINT TAB(15) "MUF (MHZ) FOR EACH TRANSMITTER AT EACH UTC HOUR": PRINT:PRINT
PRINT "HOUR"; SPC(2);
L2=L2*R0: W2=W2*R0
FOR I=1 TO NU
PRINT "NO.";I;: NEXT I
PRINT S$: PRINT
SPA=5: REM SPACING FOR OUTPUT LINE
FOR T5=0 TO 23
PRINT; SPC(3-LEN(STR$(INT(T5)))); T5;
LH=1
FOR I=1 TO NU
L1=LT(NO(I))*R0: W1=LN(NO(I))*R0
GOSUB Mainmuf
WZ=(INT((J9+0.05)*10))/10
PRINT; SPC(SPA-LH-LEN(STR$(INT(WZ)))); WZ;
LH=LEN(STR$(WZ))-LEN(STR$(INT(WZ)))
IF LH >2 THEN LH=0
NEXT I
PRINT S$
NEXT T5
GOTO 2610
REM MINIMUF 3.5 BEGINS HERE FOLKS
Mainmuf:
3000 K7 = SIN (L1) * SIN (L2) + COS (L1) * COS (L2) * COS (W2-W1)
3010 IF K7 >-1 THEN 3030
3020 K7=-1: G1=0: GOTO 3060
3030 IF K7 <1 THEN 3050
3040 K7=1: G1=0: GOTO 3060
3050 G1=FNACS(K7)
3060 K6=1.59*G1
3070 IF K6 >=1 THEN 3090
3080 K6=1
3090 K5=1/K6
3100 J9=100
3110 FOR K1=1/(2*K6) TO 1-1/(2*K6) STEP 0.9999-1/K6
3120 IF K5=1 THEN 3140
3130 K5=0.5
3140 P=SIN(L2)
3150 Q=COS(L2)
3160 A=(SIN(L1)-P*COS(G1))/(Q*SIN(G1))
3170 B=G1*K1
3180 C=P*COS(B)+Q*SIN(B)*A
3190 D=(COS(B)-C*P)/(Q*SQR(1-C^2))
3200 IF D >-1 THEN 3220
3210 D=0: GOTO 3250
3220 IF D <1 THEN 3240
3230 D=0: GOTO 3250
3240 D=FNACS(D)
3250 W0=W2+SGN(SIN(W1-W2))*D
3260 IF W0 >=0 THEN 3280
3270 W0=W0+P1
3280 IF W0 <P1 THEN 3300
3290 W0=W0-P1
3300 IF C >-1 THEN 3320
3310 C=-1: L0=P0: GOTO 3350
3320 IF C <1 THEN 3340
3330 C=1: L0=P0: GOTO 3350
3340 L0=P0-FNACS(C)
3350 Y1=0.0172*(10+(M0-1)*30.4+D6)
3360 Y2=0.409*COS(Y1)
3370 K8=3.82*W0+12+0.13*(SIN(Y1)+1.2*SIN(2*Y1))
3380 K8=K8-12*(1+SGN(K8-24))*SGN(ABS(K8-24))
3390 IF COS (L0+Y2) >-0.26 THEN 3480
3400 K9=0
3410 G0=0
3420 M9=2.5*G1*K5
3430 IF M9 <=P0 THEN 3450
3440 M9=P0
3450 M9=SIN(M9)
3460 M9=1+2.5*M9*SQR(M9)
3470 GOTO 3730
3480 K9=(-0.26+SIN(Y2)*SIN(L0))/(COS(Y2)*COS(L0)+0.001)
3490 K9=12-ATN(K9/SQR(ABS(1-K9*K9)))*7.63944
3500 T=K8-K9/2+12*(1-SGN(K8-K9/2))*SGN(ABS(K8-K9/2))
3510 T4=K8+K9/2-12*(1+SGN(K8+K9/2-24))*SGN(ABS(K8+K9/2-24))
3520 C0=ABS(COS(L0+Y2))
3530 T9=9.7*C0^9.6
3540 IF T9 >0.1 THEN 3560
3550 T9=0.1
3560 M9=2.5*G1*K5
3570 IF M9 <=P0 THEN 3590
3580 M9=P0
3590 M9=SIN(M9)
3600 M9=1+2.5*M9*SQR(M9)
3610 IF T4 <T THEN 3640
3620 IF (T5-T)*(T4-T5) >0 THEN 3650
3630 GOTO 3780
3640 IF (T5-T4)*(T-T5) >0 THEN 3780
3650 T6=T5+12*(1+SGN(T-T5))*SGN(ABS(T-T5))
3660 G9=PI*(T6-T)/K9
3670 G8=PI*T9/K9
3680 U=(T-T6)/T9
3690 G0=C0*(SIN(G9)+G8*(EXP(U)-COS(G9)))/(1+G8*G8)
3700 G7=C0*(G8*(EXP(-K9/T9)+1))*EXP((K9-24)/2)/(1+G8*G8)
3710 IF G0 >=G7 THEN 3730
3720 G0=G7
3730 G2=(1+S9/250)*M9*SQR(6+58*SQR(G0))
3740 G2=G2*(1-0.1*EXP((K9-24)/3))
3750 G2=G2*(1+(1-SGN(L1)*SGN(L2))*0.1)
3760 G2=G2*(1-0.1*(1+SGN(ABS(SIN(L0))-COS(L0))))
3770 GOTO 3840
3780 T6=T5+12*(1+SGN(T4-T5))*SGN(ABS(T4-T5))
3790 G8=PI*T9/K9
3800 U=(T4-T6)/2
3810 U1=-K9/T9
3820 G0=C0*(G8*(EXP(U1)+1))*EXP(U)/(1+G8*G8)
3830 GOTO 3730
3840 IF G2 >J9 THEN 3860
3850 J9=G2
3860 NEXT K1
3870 RETURN
INSTRUCTIONS:
CLS
PRINT
PRINT TAB(27); "MINIMUF 3.5 WITH DRIVER"
PRINT
PRINT TAB(26); "BY JAMES F. SULLIVAN KB8DE"
PRINT TAB(20); "COPYRIGHT (C) 1982 BY JAMES F. SULLIVAN"
PRINT
PRINT TAB(22); "RECODED TO RUN ON YOUR AMIGA 1000"
PRINT TAB(27); "AND THE DRIVER EXPANDED"
PRINT
PRINT TAB(29); "BY RONALD F. JACOBS"
PRINT TAB(36); "WA1FSV"
PRINT
PRINT TAB(9); "MINIMUF 3.5 HAS BEEN ADAPTED FROM THE PROGRAM APPEARING IN"
PRINT TAB(9); "'MINIMUF: A SIMPLIFIED MUF PREDICTION PROGRAM FOR MICRO-"
PRINT TAB(9); "COMPUTERS',BY R.B.ROSE;QST MAGAZINE; DEC,1982;PP.36-38."
PRINT
PRINT TAB(9); "MINIMUF 3.5 IS PRESENTED HERE WITH THE PERMISSIONS OF THE"
PRINT TAB(9); "AMERICAN RADIO RELAY LEAGUE AND ROBERT B. ROSE."
PRINT
PRINT TAB(9); "THIS PROGRAM MAY BE COPIED FOR NON-PROFIT DISTRIBUTION PROVIDED"
PRINT TAB(9); "ALL CREDITS AND COPYRIGHT INFORMATION IS RETAINED IN THE COPY."
PRINT
PRINT TAB(26); "PRESS <RETURN> TO CONTINUE";:INPUT "", Z$
CLS
PRINT
PRINT
PRINT
PRINT
PRINT
PRINT TAB(9); "MINIMUF PREDICTS THE MAXIMUM USEABLE FREQUENCY FOR RADIO"
PRINT TAB(9); "PROPOGATION BETWEEN TWO LOCATIONS ON THE EARTH AT ALL HOURS"
PRINT TAB(9); "OF THE DAY WHEN THE DATE AND 10.7cm SOLAR FLUX IS INPUT."
PRINT
PRINT
PRINT
PRINT
PRINT
PRINT TAB(9); "MINIMUF HAS BEEN USED BETWEEN 2 AND 50 MHZ. IT IS MOST"
PRINT TAB(9); "USEFULL FOR PATH LENGHTS FROM 250 TO 6000 MILES."
PRINT
PRINT
PRINT
PRINT
PRINT
PRINT TAB(26); "PRESS <RETURN> TO CONTINUE.";:INPUT "",Z$
CLS
PRINT
PRINT
PRINT TAB(9); "THE DEFAULT RECEIVER LOCATION IS IN THE LAST 'TRANSMITTER'"
PRINT TAB(9); "DATA STATEMENT. TO CHANGE THIS, 5 ITEMS MUST BE GIVEN:"
PRINT TAB(9); "CITY, STATE, LOCATION, LATITUDE, AND LONGITUDE."
PRINT
PRINT
PRINT TAB(9); "IF THE RECEIVER IS USED IN THE EASTERN UNITED STATES IT IS"
PRINT TAB(9); "SUGGESTED THAT THE LINE FOR 'ST.AUGUSTINE' BE EXCHANGED"
PRINT TAB(9); "WITH THE DATA IN THE REMARKS AFTER THE DEFAULT RECEIVER."
PRINT
PRINT
PRINT TAB(9); "AN 80 COLUMN PRINTER IS DESIREABLE FOR OUTPUT OF MORE THAN ONE"
PRINT TAB(9); "TRANSMITTER LOCATION AT A TIME AND FOR 80 COLUMN LISTINGS."
PRINT
PRINT
PRINT TAB(9); "10.7cm SOLAR FLUX INFORMATION (REQUIRED BY THIS PROGRAM)"
PRINT TAB(9); "MAY BE OBTAINED AT 18 MINUTES AFTER EACH HOUR ON STATIONS"
PRINT TAB(9); "WWV OR WWVH AT 2.5, 5, 10, 15, OR 20 MEGAHERTZ."
PRINT
PRINT
PRINT TAB(26); "PRESS <RETURN> TO CONTINUE";: INPUT "",Z$
CLS
GOTO Driver
REM ****************************
REM * Driver for MINIMUF 3.5 *
REM * by JAMES F. SULLIVAN *
REM * KB8DE *
REM * COPYRIGHT (C) 1982 *
REM * by JAMES F. SULLIVAN *
REM * THIS PROGRAM MAY BE *
REM * COPIED FOR NON-PROFIT *
REM * DISTRIBUTION *
REM * *
REM * THE ACTUAL MINIMUF 3.5 *
REM * PROGRAM IS IN LINES 3000 *
REM * THROUGH 3870. THE INPUT *
REM * FOR MINIMUF 3.5 BEGINS *
REM * AT "DRIVER". HOW TO USE *
REM * MINIMUF 3.5 AND "DRIVER" *
REM * BEGIN AT "INSTRUCTIONS" *
REM * *
REM * THE ORIGINAL MINIMUF 3.5 *
REM * AND DRIVER WERE ALTERED *
REM * FOR USE ON THE APPLE II+ *
REM * by JAMES F. SULLIVAN. *
REM * *
REM * THE MINIMUF 3.5 PROGRAM *
REM * APPEARED IN THE ARTICLE *
REM * "MINIMUF: A SIMPLIFIED *
REM * MUF-PREDICTION PROGRAM *
REM * FOR MICROCOMPUTERS" by *
REM * ROBERT B. ROSE K6GKU, IN *
REM * QST MAGAZINE; DEC, 1982; *
REM * PP. 36-38; AND IS COPY- *
REM * RIGHTED BY THE AMERICAN *
REM * RADIO RELAY LEAGUE.IT IS *
REM * PRESENTED HERE, FOR NON- *
REM * PROFIT DISTRIBUTION ONLY *
REM * WITH THE PERMISSIONS OF *
REM * THE AMERICAN RADIO RELAY *
REM * LEAGUE AND R. B. ROSE. *
REM * *
REM * *
REM * ALL OF THE ABOVE CREDITS *
REM * MUST BE REPRODUCED WITH *
REM * ANY COPY, WRITTEN OR *
REM * ELECTRONIC, FOR PER- *
REM * MISSIONS TO COPY FOR NON-*
REM * PROFIT USE TO BE VALID. *
REM ****************************
REM
REM
REM ****************************
REM * THE PROGRAM "DRIVER" WAS *
REM * RECODED AND ENHANCED TO *
REM * TO RUN ON THE COMMODORE *
REM * AMIGA 1000 COMPUTER *
REM * USING "AmigaBasic" BY: *
REM * RONALD F. JACOBS *
REM * WA1FSV *
REM * INTERESTED USERS OF THE *
REM * PROGRAM "MINIMUF 3.5" *
REM * MAY OBTAIN THEIR FREE *
REM * COPY BY CONTACTING WA1FSV*
REM * OR THE AMERICAN RADIO *
REM * RELAY LEAGUE. *
REM ****************************